
//   import { apiRequestPost } from '@/api/globalApi.js'

// // hooks/useTableCRUD.ts
// import { ref, reactive, computed, watchEffect, toRefs } from 'vue';
// // import { useTableData, usePagination, useModal } from './otherHooks'; // 假设你有用于表格数据、分页和模态框的其他 Hooks

// interface TableRecord {
//   id: number;
//   // 其他字段...
// }

// interface CRUDOptions {
//   fetchRecords: (params: any) => Promise<TableRecord[]>;
//   createRecord: (record: TableRecord) => Promise<void>;
//   updateRecord: (id: number, record: TableRecord) => Promise<void>;
//   deleteRecord: (id: number) => Promise<void>;
// }

// export function useTableCRUD(options: CRUDOptions) {
//   const { fetchRecords, createRecord, updateRecord, deleteRecord } = options;

//   const { tableData, loading, reloadTableData } = useTableData(fetchRecords);
//   const pagination = usePagination();
//   const { openModal, closeModal, modalState, setModalData } = useModal();

//   // 初始化表单数据
//   const formRef = ref<FormInstance>();
//   const formData = reactive<Partial<TableRecord>>({});

//   const editRow = (row: TableRecord) => {
//     setModalData(row);
//     openModal();
//   };

//   const deleteRow = async (id: number) => {
//     await deleteRecord(id);
//     reloadTableData(pagination.current, pagination.pageSize);
//   };

//   const submitForm = async () => {
//     if (modalState.isEdit) {
//       await updateRecord(formData.id, formData);
//     } else {
//       await createRecord(formData as TableRecord);
//     }
//     closeModal();
//     reloadTableData(pagination.current, pagination.pageSize);
//   };

//   watchEffect(() => {
//     if (modalState.isOpen) {
//       formRef.value?.resetFields();
//       formData.id = modalState.record?.id || 0;
//       Object.assign(formData, modalState.record);
//     }
//   });

//   return {
//     ...toRefs(pagination),
//     tableData,
//     loading,
//     reloadTableData,
//     openModal,
//     closeModal,
//     editRow,
//     deleteRow,
//     submitForm,
//     formRef,
//     formData,
//   };
// }